/**    
 * @Description: 博客园地址：https://www.cnblogs.com/zumengjie/      
 * @author: 顶风少年   
 * @date: 2021年4月5日 下午10:30:14
 */
package datang.dtdb.scripting;

import java.util.HashMap;

import datang.dtdb.session.Configuration;

/**
 * Sql上下文对象，用于将多个SQL脚本链接成一个
 */
public class DynamicContext {

	/**
	 * 连接SqlNode中的sql文本
	 */
	private StringBuilder sb = new StringBuilder();

	/**
	 * 存放入参key的名称
	 */
	public static final String PARAMETER_OBJECT_KEY = "_parameter";

	
	/**
	 * 用来获取MetaObject
	 * */
	private Configuration configuration;
	
	/**
	 * 存放入参的参数
	 */
	private ContextMap bindings;

	public DynamicContext(Configuration configuration,Object parameterObject) {
		this.configuration = configuration;
		bindings = new ContextMap();
		if (parameterObject != null) {
			bindings.put("_parameter", parameterObject);
		}
	}
	
	/**
	 * 获取configuration
	 * */
	public Configuration getConfiguration() {
		return configuration;
	}

	/**
	 * 连接SQL
	 */
	public void appendSql(String sql) {
		sb.append(sql);
	}

	/**
	 * 获取连接后的SQL
	 */
	public String getSql() {
		return sb.toString().trim();
	}

	public ContextMap getBindings() {
		return bindings;
	}

	public static class ContextMap extends HashMap<String, Object> {
		// TODO 此处需要一个 MetaObject对象用来处理参数是map类型的。

	}
}
